Computer networks typically include multiple computers connected to a common computer communication network, for example the internet. In some computer networks, a server computer provides services to a client computer. The client computer can be a remote computer that accesses services over the computer network. The server computer, in turn, can access other networked computers providing services useful to the client for the benefit of the client instead of requiring the client to directly access those networked computers.
A typical internet-mediated enterprise conducts business with customers by interacting with users through a web browser on the users' computer. A user contacts a server computer through the web browser on a client computer and requests information. A server provides web pages to the client computer. The client computer displays the pages to the user. The user then interacts with a user interface presented by the web pages. The interaction can take a variety of forms, depending on the nature of the business. Typically, the business provides products for sale and the products are shown to the user through the web browser on the client computer and the information presented by the web pages from the server computer.
Some internet-mediated businesses use large data sets, for example, by transmitting digital images over the network. The images can take perceptible amounts of time to transfer over the internet. Furthermore, some image products are customized by users who desire to process their digital images and use the processed image as part of the image products. Processing large-sized digital images also can take a perceptible time.
Image product businesses, for example, businesses that print images for customers, often store the customers' images on a remote server. Customers can then request image prints or other products, that use one or more of their images or other images, such as photo-books. Image processing for rendering the customer images within the products can be performed by the server. However, when customers interact with the images, the images are often displayed on the client computer and are processed on the client computer with programs downloaded from the server that execute on the client computer.
It is usually the case that client computers are lower cost and have a lower performance than commercial computers used as servers to conduct business and provide web pages over the internet. It is also true that servers typically support a variety of customers at the same time, sharing the server computer resources between the customers. Thus, the available computing resource on a server, or even a client, computer varies over time depending on the demand for the resource from other customers or other computing tasks. Available internet bandwidth is likewise subject to the amount of traffic requested. As more users transfer more data at the same time, the bandwidth available to a single user decreases and the time required to transfer data for that user increases.
Task responsiveness is an important characteristic of any computer application running on a single computer or on a computer network. In particular, users performing work with a computer or computer network prefer that they not have to wait for the work to complete. Some computing tasks are performed through a web browser executing on a client computer that interacts with a network-connected server computer. The network-connected server computer can provide web pages to the client with which the user interacts. If the server computer responds too slowly to a client computer request, the user operating the client will become frustrated and may even abandon the task. Hence, efficiency, and especially responsiveness, are important issues for network service providers.
Responsiveness can be improved by increasing the network bandwidth to improve communication rates. This is particularly useful when large amounts of data are communicated between the various network computers, especially between a client and a server, and between a server and a networked storage system. One example of large data sets is a set of digital images. The time required to transmit digital images from a client to a server over a network can be lengthy. Responsiveness can also be improved by increasing the capacity of the various network elements, for example by using faster computers with more memory.
While increasing the performance of network devices is useful, there remains a need for improving networked computer services to provide responsive and efficient performance for given network and computing resources.